/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hoja.de.trabajo.pkg6;

/**
 *
 * @author FRANCISCO
 */
public interface PriorityQueue <E> extends Comparable <E> {
    
        /**
         * PRE: !isEmpty().
         * POST: Valor mínimo en la cola.
         * @return E mínimo.
         */
        public E getFirst();
     
    
        /**
         * PRE: !isEmpty().
         * POST: Remueve el valor mínimo de la cola.
         * @return E mínimo.
         */
        
        public E remove();
        
    
        /**
         * PRE: Valor es comparable y no null.
         * POST: Valor es añadido a la cola.
         * @param value 
         */
        public void add(E value);
    
    
        /**
         * PRE:
         * POST: Regresa el número de elementos en la cola.
         * @return 
         */
        public int size();
    

        /**
         * PRE:
         * POST: True si no existen elementos en la cola.
         * @return true si la PriorityQueue se encuentra vacía.
         */
         public boolean isEmpty();

}   // FIN DE LA INTERFAZ PRIORITYQUEUE
